package com.css.fxfzypg.manage.sampling.repository;

import com.css.fxfzypg.manage.sampling.repository.entity.SamplingEntity;
import com.css.fxfzypg.manage.sampling.repository.entity.StructureFeature;
import com.css.fxfzypg.manage.sampling.vo.SamplingParams;
import com.css.fxfzypg.manage.sampling.vo.SamplingSurveyPointVo;

import java.util.HashMap;
import java.util.List;
import java.util.Map;


public interface SamplingReqository {

    boolean insertSurvey(SamplingEntity samplingEntity);

    Map<String,Object>  querySubmitOrNot(String submitFlag, String taskCode, int curPage, int pageSize, String userId);

    boolean updateIsSubmit(Map<String,String> map);

    SamplingEntity queryData(String id);

    boolean modifyData(SamplingEntity samplingEntity);

    Map<String, Object> querySamplingData(SamplingParams queryParams, int curPage, int pageSize);
    Map<String, Object> querySamplingData(SamplingParams queryParams);

    boolean deleteSampling(String id);

    List<SamplingEntity> getDataByUserId(String taskCode, String userId);

    List<SamplingParams> querySamplingMap();

    List<SamplingEntity> getSamplingByTaskCode(String taskCode);

    Map<String, Object> getSamplingDataByTeamMembers(SamplingParams queryParams, int curPage, int pageSize, String userId, List<String> taskCodeList);
    Map<String, Object> getSamplingDataByTeamMembers(SamplingParams queryParams, String userId, List<String> taskCodeList);

    List<SamplingParams> getSamplingDataByTeamMembers(String userId, List<String> taskCodeList);

    Map<String, Object> querySamplingDataByProvince(SamplingParams queryParams, int curPage, int pageSize, String userId, String provinceId, List<String> taskCodeList);
    Map<String, Object> querySamplingDataByProvince(SamplingParams queryParams, String userId, String provinceId, List<String> taskCodeList);

    List<SamplingParams> querySamplingDataByProvince(String userId,String provinceId, List<String> taskCodeList);

    List<SamplingEntity> querySampling(SamplingParams queryParams);

    List<SamplingEntity> querySamplingByProvince(SamplingParams queryParams, String userId, String provinceId, List<String> taskCodeList);

    List<SamplingEntity> querySamplingDataByTeamMembers(SamplingParams queryParams, String userId, List<String> taskCodeList);

    SamplingEntity getNearestSamplingAPP(String lonlat, String taskCode);

    String getGeomByCode(String areaCode);

    List<Map<String, Object>> getFieldSurveyNameByTaskCode(String taskCode);

   List<SamplingEntity> getSamplingEntityList(List<String> taskNumList);

    boolean saveStructureFeature(StructureFeature structureFeature);

    HashMap<String, Object> getSamplingSurveyPoint(SamplingSurveyPointVo samplingSurveyPointVo, int page, int size);

    List<SamplingEntity> getSamplingListByTaskId(String taskId);

    String getFieldSurveyId(String taskCode, String fieldSurveyName);

    SamplingEntity getSamplingEntityList(String taskCode,String surveyName,String province,String city,String county);

    void update(String id, String typeImageFileId, String yearsImageFileId);

    boolean existByFieldSurveyNameAndTaskCode(String fieldSurveyName, String taskCode);

    List<SamplingEntity> getByTaskCodeAndProvinceId(String xcdcId, String provinceId);

    Integer countByTaskCodeAndProvinceId(String taskNum, String provinceId);

    Integer countCommitByTaskCodeAndProvinceId(String taskNum, String provinceId);

    Integer countByAreaNameAndTask(String taskNum, String p, String city, String c, String v);

    List<SamplingEntity> getByArea(String province,String city,String area);
}
